[][src]Crate sdl2

Getting started

extern crate sdl2; 

use sdl2::pixels::Color;
use sdl2::event::Event;
use sdl2::keyboard::Keycode;
use std::time::Duration;
 
pub fn main() {
    let sdl_context = sdl2::init().unwrap();
    let video_subsystem = sdl_context.video().unwrap();
 
    let window = video_subsystem.window("rust-sdl2 demo", 800, 600)
        .position_centered()
        .build()
        .unwrap();
 
    let mut canvas = window.into_canvas().build().unwrap();
 
    canvas.set_draw_color(Color::RGB(0, 255, 255));
    canvas.clear();
    canvas.present();
    let mut event_pump = sdl_context.event_pump().unwrap();
    let mut i = 0;
    'running: loop {
        i = (i + 1) % 255;
        canvas.set_draw_color(Color::RGB(i, 64, 255 - i));
        canvas.clear();
        for event in event_pump.poll_iter() {
            match event {
                Event::Quit {..} |
                Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
                    break 'running
                },
                _ => {}
            }
        }
        // The rest of the game loop goes here...

        canvas.present();
        ::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));
    }
}

Re-exports

pub extern crate libc;
pub extern crate sdl2_sys as sys;

Modules

audio

Audio Functions

clipboard
controller
cpuinfo
event

Event Handling

filesystem
gesture
haptic

Haptic Functions

hint
joystick
keyboard
log
macros
messagebox
mouse
pixels
rect

Rectangles and points.

render

2D accelerated rendering

rwops
surface
timer
touch
version

Querying SDL Version

video

Structs

AudioSubsystem
EventPump

A thread-safe type that encapsulates SDL event-pumping functions.

EventSubsystem
GameControllerSubsystem
HapticSubsystem
JoystickSubsystem
Sdl

The SDL context type. Initialize with sdl2::init().

TimerSubsystem
VideoSubsystem

Enums

Error
IntegerOrSdlError

A given integer was so big that its representation as a C integer would be negative.

Functions

clear_error
get_error
get_platform

Get platform name

init

Initializes the SDL library. This must be called before using any other SDL function.

set_error
set_error_from_code